package in.obj; import in.lib.Debug; import java.io.Serializable; import lombok.Getter; import lombok.NonNull; import lombok.Setter; import lombok.ToString; import com.esotericsoftware.kryo.serializers.TaggedFieldSerializer.Tag; import com.google.gson.JsonObject; @ToString public class StreamMarker implements Serializable { @Tag(0x01) @NonNull @Getter @Setter private String id = ""; @Tag(0x02) @NonNull @Getter @Setter private String lastReadId = ""; @Tag(0x03) @NonNull @Getter @Setter private String name = ""; @Tag(0x04) @NonNull @Getter @Setter private String lastUpdatedStr = ""; @Tag(0x05) @NonNull @Getter @Setter private long lastUpdated = 0L; @Tag(0x06) @NonNull @Getter @Setter private String version = ""; public static StreamMarker fromObject(JsonObject meta) { try { StreamMarker marker = new StreamMarker(); if (meta.has("marker")) { JsonObject markerObj = meta.get("marker").getAsJsonObject(); if (markerObj.has("id")) { marker.setId(markerObj.get("id").getAsString()); } if (markerObj.has("last_read_id")) { marker.setLastReadId(markerObj.get("last_read_id").getAsString()); } if (markerObj.has("name")) { marker.setName(markerObj.get("name").getAsString()); } if (markerObj.has("updated_at")) { marker.setLastUpdatedStr(markerObj.get("updated_at").getAsString()); } if (markerObj.has("version")) { marker.setVersion(markerObj.get("version").getAsString()); } } return marker; } catch (Exception e) { Debug.out(e); return new StreamMarker(); } } }